<html>
<head><meta charset="utf-8"><title>move errors · t-compiler/wg-polonius · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/index.html">t-compiler/wg-polonius</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html">move errors</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="179939815"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/179939815" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#179939815">(Nov 05 2019 at 14:59)</a>:</h4>
<p>I have a question. If we have a move error at some MIR statement x, should it happen at <code>Start(x)</code>or <code>Mid(x)</code>? Both make sense to me, but I lean towards <code>Start(x)</code> if the evaluation happens before the effect (which is the only way I see there being any point to separating start/mid).</p>



<a name="179948090"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/179948090" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#179948090">(Nov 05 2019 at 16:20)</a>:</h4>
<p>Invalidates error are at the start point, so I would expect move errors to also be at the start point.</p>



<a name="179956654"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/179956654" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#179956654">(Nov 05 2019 at 17:43)</a>:</h4>
<p>Great thanks :)</p>



<a name="190029636"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/190029636" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#190029636">(Mar 08 2020 at 21:59)</a>:</h4>
<p><span class="user-mention" data-user-id="204115">@Albin Stjerna</span>  I've tried to trace the move errors a bit just to see if something obvious jumps at you, there's a false positive in the dataset issue-47680 (it's small-ish, especially compared to clap :)  it finds an unexpected move error: <code>"Start(bb8[1])" "mp11"</code> which seems to come all the way up  via <code>path_maybe_uninitialized_on_exit</code> (from possibly the beginning of the whole phase 2)</p>



<a name="190029641"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/190029641" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#190029641">(Mar 08 2020 at 22:00)</a>:</h4>
<p><a href="https://gist.github.com/lqd/127d46f9c56ea474ed3cb6cdd09b1168" target="_blank" title="https://gist.github.com/lqd/127d46f9c56ea474ed3cb6cdd09b1168">here's a trace</a> of the tuples created during both phases of initialization<br>
and the error itself appears in round 41 of phase 2:</p>
<div class="codehilite"><pre><span></span> `move_error(Path { index: 2 }, Point { index: 46 })` tuple created, from leapjoining `path_maybe_uninitialized_on_exit(Path { index: 2 }, Point { index: 45 })` with value `Point { index: 46 }`
</pre></div>



<a name="190062629"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/190062629" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#190062629">(Mar 09 2020 at 12:19)</a>:</h4>
<p>Is the path a variable or a function argument?</p>



<a name="190065157"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/190065157" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#190065157">(Mar 09 2020 at 12:58)</a>:</h4>
<p>I don't know, it looks like a variable in the code, but mp11 doesn't doesn't appear in <a href="https://github.com/rust-lang/polonius/blob/master/inputs/issue-47680/nll-facts/main/path_is_var.facts" target="_blank" title="https://github.com/rust-lang/polonius/blob/master/inputs/issue-47680/nll-facts/main/path_is_var.facts">https://github.com/rust-lang/polonius/blob/master/inputs/issue-47680/nll-facts/main/path_is_var.facts</a> -- then again I know nothing about these facts and rules</p>



<a name="190215754"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/190215754" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#190215754">(Mar 10 2020 at 19:40)</a>:</h4>
<p>The relation between move paths and variables is slightly byzantine</p>



<a name="190215839"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/190215839" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#190215839">(Mar 10 2020 at 19:41)</a>:</h4>
<p>apparently, there's a hierarchy: mp5.mp10.mp11</p>



<a name="190215859"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/190215859" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#190215859">(Mar 10 2020 at 19:41)</a>:</h4>
<p>And mp5 is _5</p>



<a name="190216049"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/190216049" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#190216049">(Mar 10 2020 at 19:43)</a>:</h4>
<p>Ok, so it's a regular variable, moved at start, and assigned at <code>Start(bb4[0])</code>, which should also initialise all its children</p>



<a name="190216180"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/190216180" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#190216180">(Mar 10 2020 at 19:44)</a>:</h4>
<p>This looks a lot like an off-by-one</p>



<a name="190216203"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/190216203" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#190216203">(Mar 10 2020 at 19:44)</a>:</h4>
<p>Because at <code>Mid(bb8[1])</code>, mp11 is moved</p>



<a name="190216296"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/190216296" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#190216296">(Mar 10 2020 at 19:46)</a>:</h4>
<p>And the error happens at <code>Start(bb8[1])</code></p>



<a name="190216395"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/190216395" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#190216395">(Mar 10 2020 at 19:46)</a>:</h4>
<p>I guess it's caused by the join with the accessed-by relationship, presumably caused by a move expression at bb8[1]</p>



<a name="190216436"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/190216436" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#190216436">(Mar 10 2020 at 19:47)</a>:</h4>
<p>I was so <em>sure</em> I fixed the problems with overlaps in move statements</p>



<a name="190217071"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/190217071" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#190217071">(Mar 10 2020 at 19:53)</a>:</h4>
<p>It might also be related to propagation from path transitivity in <code>path_maybe_uninitialized_on_exit</code>, I'll have to check the rules</p>



<a name="190218310"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/190218310" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#190218310">(Mar 10 2020 at 20:05)</a>:</h4>
<p>I was wondering whether you expected <code>conditional_init</code> to emit 2 move errors btw ?</p>



<a name="190219058"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/190219058" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#190219058">(Mar 10 2020 at 20:13)</a>:</h4>
<p>What is <code>conditional_init</code>?</p>



<a name="190219560"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/190219560" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#190219560">(Mar 10 2020 at 20:18)</a>:</h4>
<p>one of the move errors test you added</p>



<a name="190219584"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/190219584" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#190219584">(Mar 10 2020 at 20:18)</a>:</h4>
<p>in the smoke-test dataset</p>



<a name="190219677"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/190219677" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#190219677">(Mar 10 2020 at 20:19)</a>:</h4>
<p>here <a href="https://github.com/rust-lang/polonius/blob/master/inputs/smoke-test/polonius-smoke-test.rs#L73-L78" target="_blank" title="https://github.com/rust-lang/polonius/blob/master/inputs/smoke-test/polonius-smoke-test.rs#L73-L78">https://github.com/rust-lang/polonius/blob/master/inputs/smoke-test/polonius-smoke-test.rs#L73-L78</a></p>



<a name="190219699"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/190219699" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#190219699">(Mar 10 2020 at 20:19)</a>:</h4>
<p>...</p>



<a name="190219779"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/190219779" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#190219779">(Mar 10 2020 at 20:20)</a>:</h4>
<p>I guess it should emit one?</p>



<a name="190219805"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/190219805" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#190219805">(Mar 10 2020 at 20:20)</a>:</h4>
<p>I'm not really sure how the facts map back to rustc errors</p>



<a name="190219807"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/190219807" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#190219807">(Mar 10 2020 at 20:20)</a>:</h4>
<p>on line 76, it should say that a may not be initialized</p>



<a name="190219833"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/190219833" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#190219833">(Mar 10 2020 at 20:21)</a>:</h4>
<p>I'm not sure either</p>



<a name="190219835"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/190219835" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#190219835">(Mar 10 2020 at 20:21)</a>:</h4>
<p>but maybe one of those 2 is the same off by one as earlier</p>



<a name="190219866"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/190219866" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#190219866">(Mar 10 2020 at 20:21)</a>:</h4>
<p>That sounds likely</p>



<a name="190219881"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/190219881" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#190219881">(Mar 10 2020 at 20:21)</a>:</h4>
<p>I don't have the MIR handy but those 2 errors are a bit apart from each other so it seemed likely</p>



<a name="190219916"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/190219916" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#190219916">(Mar 10 2020 at 20:22)</a>:</h4>
<p>I saw that while encoding it into a unit test <a href="https://github.com/rust-lang/polonius/pull/144/commits/a1e97641a09901aea761ffdec744517fa227bc99#diff-c5fc4beef0f03493c2e9a9c876073f0fR716-R741" target="_blank" title="https://github.com/rust-lang/polonius/pull/144/commits/a1e97641a09901aea761ffdec744517fa227bc99#diff-c5fc4beef0f03493c2e9a9c876073f0fR716-R741">https://github.com/rust-lang/polonius/pull/144/commits/a1e97641a09901aea761ffdec744517fa227bc99#diff-c5fc4beef0f03493c2e9a9c876073f0fR716-R741</a></p>



<a name="190219982"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/190219982" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#190219982">(Mar 10 2020 at 20:22)</a>:</h4>
<p>but it may be encoding another false positive at the same time</p>



<a name="190220222"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/190220222" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#190220222">(Mar 10 2020 at 20:24)</a>:</h4>
<p>if it is indeed the off by one, at least this function is super simple</p>



<a name="190220256"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/190220256" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#190220256">(Mar 10 2020 at 20:24)</a>:</h4>
<p>which should make analysis easier than the earlier one</p>



<a name="191031867"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/191031867" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#191031867">(Mar 18 2020 at 19:41)</a>:</h4>
<p>I have a lead on the false positive error from the <code>conditional_init</code> dataset (the earliest of the two errors: <code>Start(bb2[0]), mp3</code>). <code>_3</code> is interesting because it's a call's return place.</p>
<p><a href="/user_uploads/4715/f89tR8UtAewF6MuPoPJIiOIN/image.png" target="_blank" title="image.png">MIR excerpt</a></p>
<div class="message_inline_image"><a href="/user_uploads/4715/f89tR8UtAewF6MuPoPJIiOIN/image.png" target="_blank" title="MIR excerpt"><img src="/user_uploads/4715/f89tR8UtAewF6MuPoPJIiOIN/image.png"></a></div><p>The terminator we're looking at is from the <code>_3 = random()</code> call leading to <code>bb2</code> and rustc generates a fact saying <code>_3</code> will be initialized on the non-panic path, at the start location of the successor block (<code>Start(bb2[0])</code>, where our error happens).</p>
<p>The rule for move errors is:</p>
<div class="codehilite"><pre><span></span><span class="nf">move_error</span><span class="p">(</span><span class="nv">Path</span><span class="p">,</span> <span class="nv">TargetNode</span><span class="p">)</span> <span class="p">:-</span>
   <span class="nf">path_maybe_uninitialized_on_exit</span><span class="p">(</span><span class="nv">Path</span><span class="p">,</span> <span class="nv">SourceNode</span><span class="p">),</span>
   <span class="nf">cfg_edge</span><span class="p">(</span><span class="nv">SourceNode</span><span class="p">,</span> <span class="nv">TargetNode</span><span class="p">),</span>
   <span class="nf">path_accessed_at</span><span class="p">(</span><span class="nv">Path</span><span class="p">,</span> <span class="nv">TargetNode</span><span class="p">).</span>
</pre></div>


<p>so here <code>SourceNode = Mid(bb0[3])</code>, <code>TargetNode = Start(bb2[0])</code> and there must be a <code>path_access_at</code> the target node. This path access fact at the start node is generated <a href="https://github.com/rust-lang/rust/blob/master/src/librustc_mir/borrow_check/type_check/liveness/polonius.rs#L44-L47" target="_blank" title="https://github.com/rust-lang/rust/blob/master/src/librustc_mir/borrow_check/type_check/liveness/polonius.rs#L44-L47">here</a> which I assume because of some uses <a href="https://github.com/rust-lang/rust/blob/master/src/librustc_mir/borrow_check/type_check/liveness/polonius.rs#L70-L80" target="_blank" title="https://github.com/rust-lang/rust/blob/master/src/librustc_mir/borrow_check/type_check/liveness/polonius.rs#L70-L80">here</a>. </p>
<p>The rules seem designed specifically to compute a move error on an edge rather than at a point, so I'm not sure whether this path access should have been at the mid point, or if it's the other way around and the rule should look at uninitialized accesses at single points ?<br>
I'll try and emit the fact at the mid point and see if anything breaks.</p>



<a name="191033850"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/191033850" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#191033850">(Mar 18 2020 at 19:57)</a>:</h4>
<blockquote>
<p>I'll try and emit the fact at the mid point and see if anything breaks.</p>
</blockquote>
<p>answer: a lot of things break, this start point is load-bearing</p>



<a name="191034255"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/191034255" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#191034255">(Mar 18 2020 at 20:00)</a>:</h4>
<p>maybe this will help you <span class="user-mention" data-user-id="204115">@Albin Stjerna</span>, or maybe you and niko already talked about this</p>



<a name="191043428"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/191043428" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#191043428">(Mar 18 2020 at 21:17)</a>:</h4>
<p>or maybe move errors could be ignoring these cases, by allowing access + assignment at the target node ?</p>
<div class="codehilite"><pre><span></span><span class="nf">move_error</span><span class="p">(</span><span class="nv">Path</span><span class="p">,</span> <span class="nv">TargetNode</span><span class="p">)</span> <span class="p">:-</span>
   <span class="nf">path_maybe_uninitialized_on_exit</span><span class="p">(</span><span class="nv">Path</span><span class="p">,</span> <span class="nv">SourceNode</span><span class="p">),</span>
   <span class="nf">cfg_edge</span><span class="p">(</span><span class="nv">SourceNode</span><span class="p">,</span> <span class="nv">TargetNode</span><span class="p">),</span>
   <span class="nf">path_accessed_at</span><span class="p">(</span><span class="nv">Path</span><span class="p">,</span> <span class="nv">TargetNode</span><span class="p">),</span>
   <span class="p">!</span><span class="nf">path_assigned_at</span><span class="p">(</span><span class="s s-Atom">path</span><span class="p">,</span> <span class="nv">TargetNode</span><span class="p">).</span>
</pre></div>



<a name="191043744"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/191043744" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#191043744">(Mar 18 2020 at 21:20)</a>:</h4>
<p>(but wouldn't fix some of the other false positives I've seen, so hard to say)</p>



<a name="191051112"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/191051112" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#191051112">(Mar 18 2020 at 22:31)</a>:</h4>
<p>(and I think the false positives in <code>clap</code> have the same shape as this one in <code>conditional_init</code>)</p>



<a name="191051159"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/191051159" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#191051159">(Mar 18 2020 at 22:32)</a>:</h4>
<p>while some of the other false positives like in <code>issue-47680</code> were caused by a <a href="https://github.com/rust-lang/polonius/blob/master/polonius-engine/src/output/initialization.rs#L51-L52" target="_blank" title="https://github.com/rust-lang/polonius/blob/master/polonius-engine/src/output/initialization.rs#L51-L52">small typo</a></p>



<a name="191052198"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/191052198" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#191052198">(Mar 18 2020 at 22:44)</a>:</h4>
<p>(I'll re-check the previous path access fact start/mid location tests with the typo fixed)</p>



<a name="191056275"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/191056275" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#191056275">(Mar 18 2020 at 23:31)</a>:</h4>
<p>muuuuuch better, yay, and it also fixes the 3 <code>maybe-drop-*</code> tests changes: they go back to their prior behavior and we don't have 2 unexpected passes / 1 unexpected fail</p>



<a name="191081176"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/191081176" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#191081176">(Mar 19 2020 at 08:17)</a>:</h4>
<p>Yay! Nice job!</p>



<a name="191083411"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/191083411" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#191083411">(Mar 19 2020 at 08:47)</a>:</h4>
<p><span class="user-mention" data-user-id="204115">@Albin Stjerna</span> do you maybe remember a reason why these accesses were initially at the start point while other uses were at the mid point ? if not, it's probably ok to move it there as well :)</p>



<a name="191083827"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/191083827" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#191083827">(Mar 19 2020 at 08:52)</a>:</h4>
<p>it doesn't seem to impact the <code>var_maybe_partly_initialized_on_exit</code> part of move/init which impacts liveness and loan analysis so that's that. I guess we'll know more when we finally emit the move errors <span aria-label="clown" class="emoji emoji-1f921" role="img" title="clown">:clown:</span></p>



<a name="191085725"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/191085725" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#191085725">(Mar 19 2020 at 09:12)</a>:</h4>
<p>Err</p>



<a name="191085746"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/191085746" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#191085746">(Mar 19 2020 at 09:12)</a>:</h4>
<p>I have a memory</p>



<a name="191085800"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/191085800" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#191085800">(Mar 19 2020 at 09:13)</a>:</h4>
<p>But I think they should happen at mid-point</p>



<a name="191085941"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/191085941" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#191085941">(Mar 19 2020 at 09:14)</a>:</h4>
<p>seems sensible to me as well</p>



<a name="191085991"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/191085991" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#191085991">(Mar 19 2020 at 09:14)</a>:</h4>
<p>I'll take care of it</p>



<a name="191086030"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/191086030" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#191086030">(Mar 19 2020 at 09:15)</a>:</h4>
<p>the sweet dance of updating the 2 repos in lockstep :)</p>



<a name="191092284"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/191092284" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#191092284">(Mar 19 2020 at 10:15)</a>:</h4>
<p>I'm so happy this wasn't some big thing (probably)</p>



<a name="191092614"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/191092614" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#191092614">(Mar 19 2020 at 10:18)</a>:</h4>
<p>more and more I think we'll have to compute them differently, it's not datafrog's strong suit</p>



<a name="191092691"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/191092691" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#191092691">(Mar 19 2020 at 10:19)</a>:</h4>
<p>but let's get them correct first and then we can refactor all we want</p>



<a name="191092735"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/191092735" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#191092735">(Mar 19 2020 at 10:19)</a>:</h4>
<p>in the mean time it'll just be tough to work on anything downstream from move errors</p>



<a name="191092816"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/191092816" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#191092816">(Mar 19 2020 at 10:20)</a>:</h4>
<p>(on the big datasets)</p>



<a name="191093068"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/191093068" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#191093068">(Mar 19 2020 at 10:22)</a>:</h4>
<p>but yeah, same, good news :)</p>



<a name="191259085"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/191259085" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#191259085">(Mar 20 2020 at 15:35)</a>:</h4>
<p><span class="user-mention" data-user-id="204115">@Albin Stjerna</span> I've updated <a href="https://github.com/rust-lang/polonius/pull/144" target="_blank" title="https://github.com/rust-lang/polonius/pull/144">https://github.com/rust-lang/polonius/pull/144</a> to fix the subpaths false positives</p>



<a name="191259213"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/191259213" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#191259213">(Mar 20 2020 at 15:36)</a>:</h4>
<p>one PR down, two to go</p>



<a name="191259386"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/191259386" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#191259386">(Mar 20 2020 at 15:37)</a>:</h4>
<p>(maybe three, if we count the one to update the version and publish the release needed for the two other PRs)</p>



<a name="191259526"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/191259526" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#191259526">(Mar 20 2020 at 15:38)</a>:</h4>
<p>should be rather straightforward to review if you ignore the fact updates commits :)</p>



<a name="191261512"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/191261512" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#191261512">(Mar 20 2020 at 15:51)</a>:</h4>
<p>maybe I'll just bump polonius-engine to 0.12.1 in this PR (edit: done, it'll save a PR :)</p>



<a name="191262722"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/191262722" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#191262722">(Mar 20 2020 at 15:59)</a>:</h4>
<p>Excellent, I'll have a look at it during the weekend!</p>



<a name="191262903"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/191262903" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#191262903">(Mar 20 2020 at 16:00)</a>:</h4>
<p>sweet, thank you; I'll get to work on the rustc and fact updates ones then</p>



<a name="191274081"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/191274081" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#191274081">(Mar 20 2020 at 17:19)</a>:</h4>
<p>(I also added a few low hanging fruit commits for some move/init cleanups)</p>



<a name="191404103"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/191404103" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#191404103">(Mar 22 2020 at 16:31)</a>:</h4>
<p><span class="user-mention" data-user-id="116113">@lqd</span> I think it looks great; I love how reviewing this teaches me how to write better code as well</p>



<a name="191404349"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/191404349" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#191404349">(Mar 22 2020 at 16:37)</a>:</h4>
<p>Merged it!</p>



<a name="191404361"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/191404361" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#191404361">(Mar 22 2020 at 16:38)</a>:</h4>
<p>(I just assumed I could)</p>



<a name="191417072"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/191417072" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#191417072">(Mar 22 2020 at 21:28)</a>:</h4>
<p>thanks a bunch</p>



<a name="192202042"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/192202042" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#192202042">(Mar 30 2020 at 00:43)</a>:</h4>
<p>0.12.1 published, rustc PR to fix the remaining (I hope) move errors false positives + UI test expectations <a href="https://github.com/rust-lang/rust/pull/70546" title="https://github.com/rust-lang/rust/pull/70546">https://github.com/rust-lang/rust/pull/70546</a></p>



<a name="192202051"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/192202051" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#192202051">(Mar 30 2020 at 00:43)</a>:</h4>
<p>when it lands I'll update the polonius repo facts again (the branch is "ready" using the rustc PR fact gen here <a href="https://github.com/rust-lang/polonius/compare/master...lqd:fix_move_errors" title="https://github.com/rust-lang/polonius/compare/master...lqd:fix_move_errors">https://github.com/rust-lang/polonius/compare/master...lqd:fix_move_errors</a>  but that output may change by the time the PR lands -- also it's huge, mostly because of some changes in rustc <code>outlives</code> output, maybe the recent regionck change)</p>



<a name="192202969"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/192202969" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#192202969">(Mar 30 2020 at 01:09)</a>:</h4>
<p>(but this should all go away if we go with the previous plan I mentioned to fix the OOMs, all those are materialization of the <code>Locations::All</code> subsets)</p>



<a name="192304500"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/192304500" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#192304500">(Mar 30 2020 at 19:19)</a>:</h4>
<p>turns out it landed very quickly, so here's the updated facts PR <a href="https://github.com/rust-lang/polonius/pull/147" title="https://github.com/rust-lang/polonius/pull/147">https://github.com/rust-lang/polonius/pull/147</a>, and we should be good on move errors until we actually emit them in rustc</p>



<a name="193818686"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/193818686" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#193818686">(Apr 13 2020 at 20:40)</a>:</h4>
<p><span class="user-mention" data-user-id="116113">@lqd</span> so I was reading this topic</p>



<a name="193818713"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/193818713" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#193818713">(Apr 13 2020 at 20:40)</a>:</h4>
<p>I'm not 100% sure what ultimately changed in the rules -- should I look at the PR?</p>



<a name="193818729"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/193818729" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#193818729">(Apr 13 2020 at 20:41)</a>:</h4>
<p>or should I sit and read this topic carefully</p>



<a name="193818731"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/193818731" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#193818731">(Apr 13 2020 at 20:41)</a>:</h4>
<p>or both :)</p>



<a name="193818735"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/193818735" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#193818735">(Apr 13 2020 at 20:41)</a>:</h4>
<p>which PR ?</p>



<a name="193818745"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/193818745" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#193818745">(Apr 13 2020 at 20:41)</a>:</h4>
<p>the rustc one or polonius one ?</p>



<a name="193818748"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/193818748" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#193818748">(Apr 13 2020 at 20:41)</a>:</h4>
<p>oh it seemed lke you wrote a PR</p>



<a name="193818764"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/193818764" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#193818764">(Apr 13 2020 at 20:41)</a>:</h4>
<p>I want to know what changed in the polonius rules</p>



<a name="193818771"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/193818771" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#193818771">(Apr 13 2020 at 20:41)</a>:</h4>
<p>so I guess the plonius one</p>



<a name="193818780"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/193818780" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#193818780">(Apr 13 2020 at 20:41)</a>:</h4>
<p>I wrote a rustc PR but didn't change the polonius rules</p>



<a name="193818788"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/193818788" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#193818788">(Apr 13 2020 at 20:41)</a>:</h4>
<p>just rustc fact gen</p>



<a name="193818835"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/193818835" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#193818835">(Apr 13 2020 at 20:42)</a>:</h4>
<p>I'm curious if you also updated the <a href="https://hackmd.io/CGMNjt1hR_qYtsR9hgdGmw" title="https://hackmd.io/CGMNjt1hR_qYtsR9hgdGmw">Polonius Rules</a></p>



<a name="193818837"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/193818837" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#193818837">(Apr 13 2020 at 20:42)</a>:</h4>
<p>oh</p>



<a name="193818847"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/193818847" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#193818847">(Apr 13 2020 at 20:42)</a>:</h4>
<p>(a fact location)</p>



<a name="193818853"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/193818853" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#193818853">(Apr 13 2020 at 20:42)</a>:</h4>
<p><em>ah</em></p>



<a name="193818870"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/193818870" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#193818870">(Apr 13 2020 at 20:42)</a>:</h4>
<p>interesting</p>



<a name="193818941"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/193818941" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#193818941">(Apr 13 2020 at 20:43)</a>:</h4>
<p>let met get you a link</p>



<a name="193818993"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/193818993" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#193818993">(Apr 13 2020 at 20:43)</a>:</h4>
<p><a href="https://github.com/rust-lang/rust/pull/70546/files#diff-b05a06387184e401e73a1e9da3fdff0f" title="https://github.com/rust-lang/rust/pull/70546/files#diff-b05a06387184e401e73a1e9da3fdff0f">this</a> was the meat of it (and then this required to update the facts in the polonius repo ofc)</p>



<a name="193819014"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/193819014" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#193819014">(Apr 13 2020 at 20:43)</a>:</h4>
<p>(the rest of the changes were about updating the test expectations)</p>



<a name="193819209"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/193819209" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#193819209">(Apr 13 2020 at 20:45)</a>:</h4>
<p>so I don't think anything changed in the polonius rules about move errors if I understood everything correctly, and it's still supposed to match what you and Albin devised last time :)</p>



<a name="193819367"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/193819367" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#193819367">(Apr 13 2020 at 20:46)</a>:</h4>
<p>(we <em>might</em> have to change some things as they're now a bit slow)</p>



<a name="193820185"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/193820185" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#193820185">(Apr 13 2020 at 20:55)</a>:</h4>
<p>does that clear things up ?</p>



<a name="193935597"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/193935597" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#193935597">(Apr 14 2020 at 18:04)</a>:</h4>
<p>interesting</p>



<a name="193935605"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/193935605" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#193935605">(Apr 14 2020 at 18:04)</a>:</h4>
<p>so basically we had an access at the <em>start</em> point</p>



<a name="193935643"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/193935643" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#193935643">(Apr 14 2020 at 18:04)</a>:</h4>
<p>and you moved it to the <em>mid</em> point</p>



<a name="193935669"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/193935669" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#193935669">(Apr 14 2020 at 18:04)</a>:</h4>
<p>I think that sounds right, yes</p>



<a name="193935681"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/193935681" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#193935681">(Apr 14 2020 at 18:04)</a>:</h4>
<p>most things happen at the mid point</p>



<a name="193935729"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/193935729" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#193935729">(Apr 14 2020 at 18:05)</a>:</h4>
<p>I have to remember what the role of <em>start</em> point was exactly -- I think it had something to do with higher-ranked regions</p>



<a name="193947756"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/193947756" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#193947756">(Apr 14 2020 at 19:45)</a>:</h4>
<p>yes only accesses were at the start point, which created move errors on calls initializing return places at the start point of the following block</p>



<a name="193947999"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/193947999" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#193947999">(Apr 14 2020 at 19:47)</a>:</h4>
<p>it sounded right to me as well, and overall fixed the false positives in the local datasets, but the only useful validation will be rustcs tests, when we do emit the move errors in rustc</p>



<a name="193948690"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/193948690" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#193948690">(Apr 14 2020 at 19:53)</a>:</h4>
<p>(loan invalidations also happen on the start point)</p>



<a name="194032584"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/move%20errors/near/194032584" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/move.20errors.html#194032584">(Apr 15 2020 at 13:47)</a>:</h4>
<p>So exciting.</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>